イベントが起きると発生します。 たとえば、siOnBeginNewScene イベントの OnEvent コールバックは、[ファイル] > [新規シーン]、[プロジェクト マネージャ]、または NewScene コマンドを使って新しいシーンが作成されると発生します。
PluginRegistrar.RegisterEvent で登録されたイベント(EventInfo の場合)。 または PluginRegistrar.RegisterTimerEvent で登録されたイベント(TimerEvent の場合)。
サポートされるイベントのリストについては、「siEventID」を参照してください。
public class <event_name> { public bool OnEvent( Context in_context ) { ... } } |
CStatus <event_name>_OnEvent( CRef& in_context ) { ... } |
function <event_name>_OnEvent( in_context ) { ... } |
def <event_name>_OnEvent( in_context ): ... |
Function <event_name>_OnEvent( in_context ) ... End Function |
sub <event_name>_OnEvent { my $in_context = shift; } |
<event_name> は、PluginRegistrar.RegisterEvent の呼び出しで指定されている名前です。この名前に含まれるスペースはアンダースコアに置き換えられます。 たとえば、My New Scene という名前のイベントを登録する場合、コールバック関数の名前は My_New_Scene_OnEvent になります。
パラメータ | Language | タイプ | 詳細 |
---|---|---|---|
in_context | スクリプティングおよび C# | コンテキスト | Context.Source はイベント PluginItem を返します。 |
C++ | CRef& | Context オブジェクトへのリファレンス。 |
イベント | Attribute | 詳細 | ||
---|---|---|---|---|
siOnActivate | State | アプリケーションがアクティブになっているか(true)、非アクティブになっているか(false)を示すブール値。 | ||
siOnBeginCommand | Command | Command が実行されるときに発生します。 このイベントは、コマンドの実行を中止したり、コマンドの引数の値を変更したり、他のコマンドを起動するために使用できます。 | ||
siOnEndCommand | Command | Command が実行されるときに発生します。 このイベントは、コマンドの戻り値にアクセスしたり、引数の値を出力するために使用できます。 他のタイプのイベントとは逆に、このイベントは現在のコマンドが前のイベントによって中止されたときには常に発生します。 | ||
Aborted | コマンドが中止されたかどうかを示すブール演算。 | |||
ReturnValue | コマンドによって返される値(存在する場合)。 | |||
siOnBeginFileExport siOnEndFileExport |
Input | 書き出されるオブジェクト:
|
||
FileName | 書き出されたファイルの完全パス名。 | |||
FileType | 書き出されるファイルのタイプを指定する siFileType 値。 取り得る値は以下のとおりです。 | |||
siOnBeginFileImport siOnEndFileImport |
FileName | 読み込むファイルの完全パス名。 | ||
FileType | 読み込まれるファイルのタイプを指定する siFileType 値。 取り得る値は以下のとおりです。 | |||
Parent | 読み込み中に作成されたモデルの親。指定されていない場合は空です。 | |||
Reference | リファレンス モデルが読み込まれるかどうかを指定します。 .emdl (siFileTypeModel)ファイル、.xsi (siFileTypedotXSI)ファイル、カスタム ファイル(siFileTypeCustom)を読み込む場合にのみ適用されます。 | |||
Name | 読み込み中に作成されたリファレンスモデルの名前(存在する場合)。 読み込まれたモデルが dotXSI の場合、このフィールドは空白です。 | |||
siOnBeginFrame siOnEndFrame siOnBeginSequence siOnEndSequence siOnRenderAbort |
RenderType | 実行されるレンダリング操作のタイプを指定する siRenderType 値: | ||
FileName | レンダリングされるファイル名のリスト。 指定されているファイル名は、イベント ハンドラに渡される前に、ファイル名のテンプレートから解決されます。 ファイル名のテンプレートは、各 Pass プロパティの Framebuffer オブジェクトごとに指定されています。 |
|||
Frame | レンダリングされるフレームのフレーム番号。 | |||
Sequence | フレームのシーケンス番号。 シーケンス番号は、現時点までにレンダリングされたフレームの数を示します。 たとえば、フレーム 20 からフレーム 30 がレンダリングされている場合、フレーム 20 のシーケンス番号は 1 になり、フレーム 30 のシーケンス番号は 11 になります。 | |||
RenderField | フィールド レンダリングが有効かどうかを指定する siRenderFieldType 値: | |||
RenderError | レンダリング エラーのタイプを指定する siRenderErrorType 値:
siOnRenderAbort
でのみ使用できます。 |
|||
siOnBeginPassChange siOnEndPassChange |
SourcePass | 切り替え前の古いパスの名前。 | ||
TargetPass | 切り替え後の新しいパスの名前。 | |||
siOnBeginSceneOpen siOnEndSceneOpen siOnBeginSceneSaveAs siOnEndSceneSaveAs siOnBeginSceneSave2 siOnEndSceneSave2 |
FileName | シーンの完全パス名です。 | ||
siOnChangeProject | NewProjectPath | 新しくアクティブにされたプロジェクトのパス。 | ||
OldProjectPath | 前のアクティブなプロジェクトのパス。 | |||
siOnConnectShader siOnDisconnectShader |
Source | 別のシェーダ オブジェクトの入力パラメータに接続されている、または切断されている、Shader の出力 Parameter オブジェクト。 | ||
SourceProgID | ソースシェーダオブジェクトの作成に使用された文字列ID。 | |||
Target | 別のシェーダ オブジェクトの出力パラメータに接続されている、または切断されている、Shader の入力 Parameter オブジェクト。 | |||
TargetProgID | ターゲット シェーダ オブジェクトの作成に使用された文字列 ID。 | |||
siOnCreateShader | Shader | 直前に作成された Shader オブジェクト。 | ||
ProgID | シェーダの作成に使用された文字列 ID。 | |||
siOnCreateShaderDef | ShaderDef | 直前に作成された ShaderDef オブジェクト。 | ||
ProgID | シェーダ定義を個別に識別する文字列 ID。 詳細については、「シェーダ定義のインスタンス化と ProgID」を参照してください。 | |||
siOnCustomFileExport | Target | 書き出すオブジェクト。 | ||
FileName | 書き出されるカスタムファイルの完全パス名。 | |||
FileType | 書き出されるファイルのタイプを指定する siFileType 値。 | |||
Frame | 指定したオブジェクトを書き出すフレーム。 | |||
UserData | カスタム コンバータ書き出しイベント コールバックでアクセスする必要のあるデータ。 このデータは Crosswalk で書き出すとき、または CacheObjectsIntoFile コマンドで属性を書き出すときに設定されます。 Crosswalk のコンテキストの場合は、データは現在の Crosswalk カスタム プロパティの名前で設定されます。 CacheObjectsIntoFile の場合は、コマンドに渡される Attributes 引数(つまり、カンマ区切りのリスト)でユーザ データが設定されます。 | |||
siOnCustomFileImport | Target | カスタムファイルから読み込まれる内容の親。 | ||
FileName | 読み込むカスタムファイルの完全パス名。 | |||
FileType | 読み込まれるファイルのタイプを指定する siFileType 値。 | |||
Frame | カスタム ファイルのコンテンツの読み込み先となるフレーム。 | |||
UserData | カスタム コンバータ読み込みイベント コールバックでアクセスする必要のあるデータ。 データは Crosswalk のコンテキストに現在の Crosswalk カスタム プロパティの名前で設定されます。 | |||
siOnCustomShaderExport | Target | 書き出すオブジェクト。 | ||
Filename | 書き出されるカスタムシェーダの完全パス名。 | |||
Displayname | Preset Manager で表示されるシェーダ定義の名前。 詳細については、「Preset Manager の登録」を参照してください。 | |||
Category | シェーダ定義の Preset Manager でのカテゴリ。 詳細については、「Preset Manager の登録」を参照してください。 | |||
siOnDragAndDrop | DragAndDropAction | このコールバックによって処理される必要があるアクションのタイプを指定する siDragAndDropAction 値: | ||
DragSource | ドラッグアンドドロップされるソースオブジェクト。 | |||
DragSourceID | ドラッグ アンド ドロップされるソース オブジェクトの ID を指定する siVariantType 値。 現時点でサポートされているタイプは、siString のみです。 | |||
DragSourceSupported | 出力引数。 DragAndDropAction パラメータが siSourceDragAction に等しい場合、ソースがサポートされていれば、コールバックはこの変数を True に設定します。 デフォルトでは False です。 | |||
siOnKeyUp siOnKeyDown |
KeyCode | イベントの原因となったキーの virtual key code(10 進数)。 | ||
ShiftMask | モディファイヤ
キー([Shift]キー、[Alt]キー、および[Ctrl]キー)が押されたときのそのキーの状態を指定します。 ShiftMask は、押されたモディファイア キーの siKeyboardState 値をすべて合計した整数値です。 たとえば、[Shift]+[Ctrl]+[Alt]キーが押された場合、ShiftMask は siShiftMask + siCtrlMask + siAltMask になります。 |
|||
Consumed | イベントが Softimage まで継承されるかどうかを指定します。 ハンドラがイベントを消費する場合、そのイベントは Softimage に渡されません。 デフォルトでは、イベントは消費されません。 キーを Softimage で処理しない場合、Context.SetAttribute を使用して、この属性を True に設定してください。 |
|||
siOnObjectAdded | Objects | 追加されたオブジェクトのリスト。 | ||
siOnObjectRemoved | ObjectNames | 削除されたオブジェクトの名前のリスト。 | ||
siOnSelectionChange | ChangeType | 選択リストの変更内容を指定する siSelectionChangeType 値:
|
||
siOnSourcePathChange | FileName | ソース ファイルの完全パス名。 イベントは、イベントのコンテキストにある Context.SetAttribute を使用してこのパスを変更できます。 パスを変更すると、ソースは元のパスの代わりにそのパスを使用します。 ただし、すべてのパス確認は、通常どおり実行されます。 | ||
SourceType | ソースのタイプを指定する siSourcePathType 値: | |||
siOnTimeChange | Frame | 現在選択されているフレーム番号。 | ||
siOnValueChange | Object | 変更されたオブジェクト。 | ||
FullName | 変更されたオブジェクトのフルネーム。 | |||
PreviousValue | 変更される前のオブジェクトの値。
|
イベントをトリガーした操作を中止する場合は True になり、その操作を続行する場合は False になります。 PerlScript および一部の Python (バーション 2.2.1 以前)では、True および False キーワードが定義されていないので、True には 1 を使用し、False には 0 を使用します。
操作を中止する場合は CStatus::OK、続行する場合は CStatus::False (または OK 以外の任意の CStatus 値)です。
// C++ code generated by the Event Wizard #include <xsi_application.h> #include <xsi_context.h> #include <xsi_pluginregistrar.h> #include <xsi_status.h> using namespace XSI; SICALLBACK XSILoadPlugin( PluginRegistrar& in_reg ) { in_reg.PutAuthor(L"sblair"); in_reg.PutName(L"NewEvent Plug-in"); in_reg.PutEmail(L""); in_reg.PutURL(L""); in_reg.PutVersion(1,0); in_reg.RegisterEvent(L"siOnSelectionChangeEvent",siOnSelectionChange); //RegistrationInsertionPoint - do not remove this line return CStatus::OK; } SICALLBACK XSIUnloadPlugin( const PluginRegistrar& in_reg ) { CString strPluginName = in_reg.GetName(); Application().LogMessage(strPluginName + L" has been unloaded."); return CStatus::OK; } // Callback for the siOnSelectionChangeEvent event. SICALLBACK siOnSelectionChangeEvent_OnEvent( CRef& in_ctxt ) { Context ctxt( in_ctxt ); Application().LogMessage(L"siOnSelectionChangeEvent_OnEvent called"); Application().LogMessage(L"ChangeType: " + CString(ctxt.GetAttribute(L"ChangeType"))); // TODO: Put your code here. // Returns CStatus::False if you don't want to abort the event. return CStatus::False; } |